Interface Adapters
from The Clean Architecture
The Clean Architecture.iconの/color/00FF7F.icon
外部から受け取ったデータを内部用に整形して、Use Caseに渡す
図中にはControllerやPresentersがあるが、これらは互いに依存してはいけない
必ず内側の層を仲介して依存し合うようにする
それがThe Clean Architectureの右下の図の意味
#WIP
Controllers (入力)
CA:Gateways (永続化)
Presenters (表示)
業務的でない技術的関心事のロジックを書く
MVCなどはこの層になる
Reduxはこの層に収まる
この記事では、この層が、上下の両方の層に依存することになるだろうと書かれてある
本家の一方向依存関係は現実的には難しいので、この層がその汚さを吸収する
Controllers
入力の抽象を担う
入力で受け取ったものをApplication Business Rulesが扱いやすいようにデータ変換をする
Input Portの実装をする
ユーザーの入力などを、UseCaseに伝えるためにデータの加工をする
「送信」を入力されたら、どうする?
UsecaseとFrameworks & Driversで使われるデータ構造を互いに変換する
https://qiita.com/nrslib/items/a5f902c4defc83bd46b8#controller
https://qiita.com/kondei/items/41c28674c1bfd4156186#controller
具体的には
CA:Gateways
Presenters
表示
結果の表示
Viewとか?
Output Portの実装をする
みどく
https://qiita.com/nrslib/items/a5f902c4defc83bd46b8#presenter
https://qiita.com/kondei/items/41c28674c1bfd4156186#presenter
#??
サーバーとやりとりするのはどれ?
CA:Gateways?